package com.dps.recommend.beans;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;

@Getter
@Setter
@NoArgsConstructor
@Accessors(chain = true)
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class RecItemDps implements Serializable {

    @JSONField(name = "user_id")
    private String userId;

    @JSONField(name = "item_id")
    private String itemId;

    @JSONField(name = "type")
    private String type;

    @JSONField(name = "score")
    private double score = 0.d;

    /**
     * 用于去重的时候根据分数最大的去重
     */
    private Double innerScore = 0.d;

    @JSONField(name = "create_time")
    private String createTime;

    /**
     * 渠道
     */
    @JSONField(name = "cn")
    private String cn;


    /**
     * 召回源
     */
    private String recallType;


    /**
     * 版本号
     */
    private String recVersion;

    /**
     * 排序版本
     */
    private String rankType;


    /**
     * 初始化版本
     */
    private String initVersion;

    /**
     * 召回版本
     */
    private String recallVersion;

    /**
     * 融合版本
     */
    private String merageVersion;

    /**
     * 粗排版本
     */
    private String widerankVersion;

    /**
     * 精排版本
     */
    private String rankVersion;


    /**
     * 人工干预版本
     */
    private String postrankVersion;

    public Double getInnerScore() {
        return innerScore;
    }

    public void setInnerScore(Double innerScore) {
        this.innerScore = innerScore;
    }

    public String getUserId() {
        return userId;
    }

    public String getItemId() {
        return itemId;
    }

    public String getType() {
        return type;
    }

    public double getScore() {
        return score;
    }

    public String getCreateTime() {
        return createTime;
    }

    public String getCn() {
        return cn;
    }

    public String getRecallType() {
        return recallType;
    }

    public String getRecVersion() {
        return recVersion;
    }

    public String getRankType() {
        return rankType;
    }

    public String getInitVersion() {
        return initVersion;
    }

    public String getRecallVersion() {
        return recallVersion;
    }

    public String getMerageVersion() {
        return merageVersion;
    }

    public String getWiderankVersion() {
        return widerankVersion;
    }

    public String getRankVersion() {
        return rankVersion;
    }

    public String getPostrankVersion() {
        return postrankVersion;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public void setItemId(String itemId) {
        this.itemId = itemId;
    }

    public void setType(String type) {
        this.type = type;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public void setCn(String cn) {
        this.cn = cn;
    }

    public void setRecallType(String recallType) {
        this.recallType = recallType;
    }

    public void setRecVersion(String recVersion) {
        this.recVersion = recVersion;
    }

    public void setRankType(String rankType) {
        this.rankType = rankType;
    }

    public void setInitVersion(String initVersion) {
        this.initVersion = initVersion;
    }

    public void setRecallVersion(String recallVersion) {
        this.recallVersion = recallVersion;
    }

    public void setMerageVersion(String merageVersion) {
        this.merageVersion = merageVersion;
    }

    public void setWiderankVersion(String widerankVersion) {
        this.widerankVersion = widerankVersion;
    }

    public void setRankVersion(String rankVersion) {
        this.rankVersion = rankVersion;
    }

    public void setPostrankVersion(String postrankVersion) {
        this.postrankVersion = postrankVersion;
    }
}
